home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / Developer University / DU Projects / Mnu / Sources / Part.cpp < prev    next >
Encoding:
Text File  |  1996-12-11  |  3.1 KB  |  129 lines  |  [TEXT/CWIE]

  1. //    Release Version:    $ ODF 3 $
  2. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  3.  
  4. //================================================================================
  5. #ifndef PART_H
  6. #include "Part.h"
  7. #endif
  8.  
  9. #ifndef DEFINES_K
  10. #include "Defines.k"
  11. #endif
  12.  
  13. #ifndef BINDING_K
  14. #include "Binding.k"
  15. #endif
  16.  
  17. #ifndef FRAME_H
  18. #include "Frame.h"
  19. #endif
  20.  
  21. // ----- Framework Layer -----
  22. #ifndef FWPRESEN_H
  23. #include "FWPresen.h"        // FW_CPresentation
  24. #endif
  25.  
  26. #ifndef FWABOUT_H
  27. #include "FWAbout.h"        //::FW_About()
  28. #endif
  29.  
  30. #ifndef FWEVENT_H
  31. #include "FWEvent.h"        // FW_CMenuEvent
  32. #endif
  33.  
  34. // ----- OS Layer -----
  35. #ifndef FWMENU_H
  36. #include "FWMenu.h"            // FW_CMenuBar, FW_CPullDownMenu
  37. #endif
  38.  
  39. //==============================================================================
  40. #ifdef FW_BUILD_MAC
  41. #pragma segment Mnu
  42. #endif
  43.  
  44. FW_DEFINE_AUTO(CMnuPart)
  45. //==============================================================================
  46. CMnuPart::CMnuPart(ODPart* odPart)
  47.   :    FW_CPart(odPart, FW_gInstance, kPartInfoID),
  48.     fPresentation(NULL)
  49. {
  50. }
  51.  
  52. //--------------------------------------------------------------------------------
  53. CMnuPart::~CMnuPart()
  54. {
  55. }
  56.  
  57. //--------------------------------------------------------------------------------
  58. void 
  59. CMnuPart::Initialize(Environment* ev, ODStorageUnit* storageUnit, FW_Boolean fromStorage)    // Override
  60. {
  61.     FW_CPart::Initialize(ev, storageUnit, fromStorage);
  62.     const ODType kMainPresentation = "Apple:Presentation:Mnu";
  63.     fPresentation = RegisterPresentation(ev, kMainPresentation, true, NULL);
  64. }
  65.  
  66. //--------------------------------------------------------------------------------
  67. FW_Handled 
  68. CMnuPart::DoAdjustMenus(Environment* ev, FW_CMenuBar* menuBar, 
  69.                                      FW_Boolean hasMenuFocus,
  70.                                      FW_Boolean isRoot)    // Override
  71. {
  72.     FW_UNUSED(isRoot);
  73.     if (hasMenuFocus) {    
  74.         menuBar->EnableCommand(ev, cItemOneCommand, true);
  75.         menuBar->EnableCommand(ev, cItemTwoCommand, true);
  76.     }
  77.     return FW_kNotHandled;
  78. }
  79.  
  80. //--------------------------------------------------------------------------------
  81. FW_Handled 
  82. CMnuPart::DoMenu(Environment* ev, const FW_CMenuEvent& theMenuEvent)    // Override
  83. {
  84.     FW_Handled menuHandled = FW_kHandled;
  85.     ODCommandID commandID = theMenuEvent.GetCommandID(ev);
  86.     
  87.     switch (commandID)
  88.     {
  89.         case cItemOneCommand:
  90.             fPresentation->Invalidate(ev);
  91.             break;
  92.  
  93.         case cItemTwoCommand:
  94.             fPresentation->Invalidate(ev);
  95.             break;
  96.  
  97.         default:
  98.             menuHandled = false;
  99.     }
  100.     return menuHandled;
  101. }
  102.  
  103. //--------------------------------------------------------------------------------
  104. FW_CFrame* 
  105. CMnuPart::NewFrame(Environment* ev, ODFrame* odFrame,
  106.                     FW_CPresentation* presentation, FW_Boolean fromStorage)    // Override
  107. {
  108.     FW_UNUSED(fromStorage);
  109.     return FW_NEW(CMnuFrame, (ev, odFrame, presentation, this) );
  110. }
  111.  
  112. //------------------------------------------------------------------------------
  113. FW_CContent* 
  114. CMnuPart::NewPartContent(Environment* ev)    // Override
  115. {
  116.     FW_UNUSED(ev);
  117.     return NULL;
  118. }
  119.  
  120. //------------------------------------------------------------------------------
  121. FW_Handled 
  122. CMnuPart::DoAbout(Environment* ev)    // Override
  123. {
  124.     ::FW_About(ev, this, kAbout);
  125.     
  126.     return FW_kHandled;
  127. }
  128.  
  129.